package com.fzy.leetcodeExam.test342;

import java.util.Arrays;
import java.util.Comparator;
import java.util.PriorityQueue;

public class Main {
    public static void main(String[] args) {

        Main test = new Main();

        test.getSubarrayBeauty(new int[]{-1, -2, -3, -4, -5}, 2, 2);
    }

    public int findDelayedArrivalTime(int arrivalTime, int delayedTime) {
//        int ans = arrivalTime + delayedTime;
//        if(ans >= 24){
//            return ans - 24;
//        }
//        return ans;

        return arrivalTime + delayedTime > 24 ? arrivalTime + delayedTime - 24 : arrivalTime + delayedTime;
    }

    public int sumOfMultiples(int n) {
        if (n < 3) {
            return 0;
        }
        int ans = 0;
        for (int i = 3; i <= n; i++) {
            if (i % 3 == 0 || i % 5 == 0 || i % 7 == 0) {
                ans += i;
            }
        }
        return ans;
    }

        public int[] getSubarrayBeauty(int[] nums, int k, int x) {

        int n = nums.length;
        int[] ans = new int[n-k+1];

        int[] arr = new int[k];
        for(int i = 0;i<k;i++){
            arr[i] = nums[i];
        }

        for(int i = 0;i<n-k+1;i++){

//            PriorityQueue<Integer> pq = new PriorityQueue(k);
            for(int j = 0;j<k;j++){
                arr[j] = nums[i+j];
//                pq.add(nums[i+j]);
            }
            Arrays.sort(arr);
//            for(int j = 0;j<x-1;j++){
//                pq.poll();
//            }
            if(arr[x-1]<0){
                ans[i] = arr[x-1];
            }else {
                ans[i] = 0;
            }
        }
        return ans;
    }


//    public int[] beautifulArray(int[] nums, int k, int x) {
//        int n = nums.length;
//        int[] res = new int[n - k + 1];
//        for (int i = 0; i <= n - k; i++) {
//            int[] sub = Arrays.copyOfRange(nums, i, i + k);
//            Arrays.sort(sub);
//            int idx = 0;
//            while (idx < k && sub[idx] >= 0) {
//                idx++;
//            }
//            if (idx >= x) {
//                res[i] = sub[x - 1];
//            } else {
//                int negCount = idx;
//                while (idx < k && sub[idx] < 0) {
//                    idx++;
//                }
//                if (negCount + k - idx >= x) {
//                    res[i] = sub[x - negCount - 1];
//                } else {
//                    res[i] = sub[idx - 1];
//                }
//            }
//        }
//        return res;
//    }

}
